#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<stdbool.h>
using namespace std;
int GetMonth(int year, int month)
{
	int arr[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
	if (month == 2 && (year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
	{
		return 29;
	}
	return arr[month];
}
class Date
{
public:
	Date(int year=1,int month=1,int day=1)
	{
		_year = year;
		_month = month;
		_day = day;
	}

	Date operator+=(int a)
	{
		_day += a;
		if (_day > GetMonth(_year, _month))
		{
			_month++;
			if (_month == 13)
			{
				_year++;
				_month = 1;
			}
		}
		return *this;
	}
	bool operator>(const Date& d)
	{
		if (_year > d._year)
		{
			return true;
		}
		else
		{
			if (_year == d._year && _month > d._month)
			{
				return true;
			}
			else if (_year == d._year && _month == d._month && _day > d._day)
			{
				return true;
			}
		}
		return false;
	}
	int Getyear_all()
	{
		Date d1 = *this;
		int all = 0;
		while (d1._year)
		{
			all+=d1._year%10;
			d1._year /= 10;
		}
		return all;

	}
	int Getmonth_all()
	{
		Date d1 = *this;
		int all = 0;
		while (d1._month)
		{
			all += d1._month % 10;
			d1._month /= 10;
		}
		return all;
	}
	int Getday_all()
	{
		Date d1 = *this;
		int all = 0;
		while (d1._day)
		{
			all += d1._day % 10;
			d1._day /= 10;
		}
		return all;
	}

private:
	int _year;
	int _month;
	int _day;
};
int main()
{
	Date d1(1999, 1, 1);
	Date d2(9999 , 12, 31);
	int count = 0;
	while (d2 > d1)
	{
		int year_all = d1.Getyear_all();
		int month_all = d1.Getmonth_all();
		int day_all = d1.Getday_all();
		if (year_all == month_all + day_all)
		{
			count++;
		}
		d1 += 1;
	}
	cout<<count<<endl;
}